/**
 * @file awesome-macro.c
 * @author your name (you@domain.com)
 * @brief 关于宏定义的一些有趣的用法
 *        - 变参数；
 *        - 转记号为字符；
 * @version 0.1
 * @date 2021-12-03
 * 
 * @copyright Copyright (c) 2021
 * 
 */

#include <stdio.h>

/* 变参数 */
#define make_em_a_string(...) #__VA_ARGS__

/* 转记号为字符 */
#define MSG_ERROR(a, b) printf(#a "+" #b "=%d\r\n", (a)+(b))

int main()
{
    printf(make_em_a_string(a, b, c, d)); /* 输出：a, b, c, d */
    printf("\r\n");
    MSG_ERROR(100, 200);
    return 0;
}